/**
 * 
 */
package compilador.analizadorSintactico.categoriasSintacticas;

import javax.swing.tree.DefaultMutableTreeNode;

import compilador.analizadorLexico.simbolos.SimboloLexico;

/**
 * @author Nolberto Castellanos Rodriguez
 * @author Yurani Alejandra Salamanca Lotero
 *
 * Clase que representa un expresion condicional
 */
public class Condicional {
	
//	-------------------------------------------------------------------------------------------------
//	ATRIBUTOS
//	-------------------------------------------------------------------------------------------------
	
	/**
	 * Atributo que representa el condicional de un bloque de sentencia
	 */
	private SimboloLexico condicional;
	
//	-------------------------------------------------------------------------------------------------
//	CONSTRUCTOR
//	-------------------------------------------------------------------------------------------------
	
	/**
	 * Constructor que pemite crear un expresion condicional
	 * @param condicional. condicional de la sentancia
	 */
	public Condicional(SimboloLexico condicional) 
	{
		super();
		this.condicional = condicional;
	}
		
//	-------------------------------------------------------------------------------------------------
//	METODOS
//	-------------------------------------------------------------------------------------------------	
	
	/**
	 * Metodo que permite agregar hojas al nodo de la clase
	 * @return el nodo de la clase con sus hojas
	 */
	public  DefaultMutableTreeNode getArbolVisual(){
		DefaultMutableTreeNode miRaiz =  new  DefaultMutableTreeNode("Condicional");
		miRaiz.add(new DefaultMutableTreeNode(condicional.getLexema()));
		return miRaiz;
	}
	
//	-------------------------------------------------------------------------------------------------
//	Getter's and Setter's
//	-------------------------------------------------------------------------------------------------

	/**
	 * Metodo que nos retorna el valor de condicional
	 * @return  condicional. Valor retornado
	 */
	public SimboloLexico getCondicional() {
		return condicional;
	}

	/**
	 * Metodo que permite asignar el valor de condicional
	 * @param condicional. Valor a asignar condicional
	 */
	public void setCondicional(SimboloLexico condicional) {
		this.condicional = condicional;
	}

}
